逗號分隔值(Comma-Separated Values)每一行代表一行數據,每行中的值以逗號分隔(因此得名)。
CSV 檔案廣泛用於不同應用程式和系統之間交換資料。它們提供了一種普遍接受的格式來共享結構化數據,可以透過不同的軟體程式輕鬆匯入和匯出這些數據。許多應用程式(包括電子表格軟體、資料庫和程式語言)都支援 CSV 檔案匯入和匯出。
AI模型通常需要大量的訓練數據,CSV檔案可以作為儲存和預處理資料的通用格式。這包括刪除不相關資訊、處理缺失值、標準化資料和編碼分類變數等任務。資料經過預處理後,可用於訓練和評估人工智慧模型。
模型評估與分析:CSV 檔案可用於儲存 AI 模型效能的評估指標和結果。訓練和測試 AI 模型後,可以將準確度、精確度、召回率或 F1 分數等效能指標記錄在 CSV 檔案中。
Name, Age, City
John Doe, 25, New York
Jane Smith, 30, London
Mark Johnson, 40, Paris
這個項目需要知道什麼是with oepn,如果你不知道可以參考我在day8的文章
將資料寫入csv例子:
(mode w)
import csv
# csv data
data = [
['Name', 'Age', 'City'],
['carson Leung', 14, 'Hong Kong'],
['Jane Smith', 65, 'London'],
['Mark Johnson', 100, 'Paris']
]
#開啟 CSV 檔案進行寫入
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
#將行寫入 CSV 文件
writer.writerows(data)
print("CSV file written successfully.")
執行結果:
CSV file written successfully.
output.csv:
Name,Age,City
carson Leung,14,Hong Kong
Jane Smith,65,London
Mark Johnson,100,Paris
import csv
data=[]
with open('output.csv', 'r') as file:
reader = csv.reader(file)
#for循環列印csv項目
for row in reader:
data.append(row)
print(data)
執行結果:
>>[['Name', 'Age', 'City'], ['carson Leung', '14', 'Hong Kong'], ['Jane Smith', '65', 'London'], ['Mark Johnson', '100', 'Paris']]
pokemon大師必須知道pokemon的pvp能力,所以我從 https://pvpoketw.com/rankings/all/10000/statproduct/ 獲取pokemon go pvp數據並嘗試列印該值
data(top 10 pokemon):
名稱,評分,圖鑑編號,第一屬性,第二屬性,攻擊力,防禦力,HP,Stat Product,等級,一般招式,特殊招式1,特殊招式2,幾下可用特招1,幾下可用特招2,夥伴行走距離,開第二招星塵花費
基格爾德 完全體,98.4,718,龍,地面,167.2,186.5,339,10574857,50,龍尾,咬碎,地震,5,8,20,100000
固拉多,94.7,383,地面,,239.5,204.2,184,8997828,50,泥巴射擊,斷崖之劍,火焰拳,7,5,20,100000
騎拉帝納 別種,94.6,487,幽靈,龍,169.7,201.7,251,8592214,50,暗影爪,龍爪,原始之力,5,6,20,100000
快龍 暗影,94.5,149,龍,飛行,233.6,179,188,7860515,50,龍息,龍爪,蠻力,12,14,5,75000
快龍,93.9,149,龍,飛行,233.6,179,188,7860515,50,龍息,龍爪,蠻力,12,14,5,75000
哲爾尼亞斯,93,716,妖精,,222.7,168.1,219,8195751,50,大地掌控,近身戰,月亮之力,4,5,20,100000
超夢 暗影,92.5,150,超能力,,264.7,165.5,192,8412920,50,精神利刃,精神擊破,暗影球,5,7,20,100000
酋雷姆,92.3,646,龍,冰,219.3,155.5,218,7432544,50,龍息,冰封世界,龍爪,14,12,20,100000
美洛耶塔 歌聲,92.2,648,一般,超能力,222.7,201.7,201,9026553,50,電光一閃,精神衝擊,魔法閃耀,6,9,20,100000
烈空坐,91.8,384,龍,飛行,251.2,155.5,191,7460107,50,龍尾,廣域破壞,畫龍點睛,4,8,20,100000
import csv
data=[]
with open('pokemon.csv', 'r') as file:
reader = csv.reader(file)
#for循環列印csv項目
for row in reader:
data.append(row)
def name():
for i in range(9):
print(data[i+1][0])
print(data[0][0]+":")
name()
執行結果:
名稱:
基格爾德 完全體
固拉多
騎拉帝納 別種
快龍 暗影
快龍
哲爾尼亞斯
超夢 暗影
酋雷姆
美洛耶塔 歌聲
答案
import csv
data=[]
with open('pokemon.csv', 'r') as file:
reader = csv.reader(file)
#for循環列印csv項目
for row in reader:
data.append(row)
def name_and_attack(n):
return(data[n+1][0]+", 一般招式是: " + data[n+1][10] + ", 特殊招式1:"+ data[n+1][11])
#print out
for i in range(10):
print(name_and_attack(i))
執行結果:
基格爾德 完全體, 一般招式是: 龍尾, 特殊招式1:咬碎
固拉多, 一般招式是: 泥巴射擊, 特殊招式1:斷崖之劍
騎拉帝納 別種, 一般招式是: 暗影爪, 特殊招式1:龍爪
快龍 暗影, 一般招式是: 龍息, 特殊招式1:龍爪
快龍, 一般招式是: 龍息, 特殊招式1:龍爪
哲爾尼亞斯, 一般招式是: 大地掌控, 特殊招式1:近身戰
超夢 暗影, 一般招式是: 精神利刃, 特殊招式1:精神擊破
酋雷姆, 一般招式是: 龍息, 特殊招式1:冰封世界
美洛耶塔 歌聲, 一般招式是: 電光一閃, 特殊招式1:精神衝擊
烈空坐, 一般招式是: 龍尾, 特殊招式1:廣域破壞
import csv
import json
def convert_csv_to_json(csv_file, json_file):
# Read CSV file and parse rows
with open(csv_file, 'r') as file:
csv_reader = csv.DictReader(file)
data = list(csv_reader)
# 寫入 JSON 文件
with open(json_file, 'w') as file:
json.dump(data, file, indent=4)
# Example usage
csv_file = 'pokemon.csv' # 替換為您的 CSV 檔案路徑
json_file = 'data.json' # 替換為所需的輸出 JSON 檔案路徑
convert_csv_to_json(csv_file, json_file)
print("done")
執行結果:
>>done
現在我們可以看到一個新檔案呼叫 data.json
import json
with open ("data.json",mode="r") as f:
data = json.load(f)
for i in data:
print(i["名稱"])
執行結果:
基格爾德 完全體
固拉多
騎拉帝納 別種
快龍 暗影
快龍
哲爾尼亞斯
超夢 暗影
酋雷姆
美洛耶塔 歌聲
烈空坐
如果我的文章對你有幫助或有更好的建議,可以追蹤我,可以按讚和不妨在留言區提出,明天再見吧。bye
reference:
https://pvpoketw.com/rankings/all/10000/statproduct/